package org.huawei260.String;

import java.util.HashMap;
import java.util.Scanner;

/**
 * @Auther: qingle
 * @Date: 2024/8/25-2:24
 * @Description:
 * 相同字符连续出现的最大次数
 * 题目描述
 * 输入一串字符串
 * 字符串长度不超过100
 * 查找字符串中相同字符连续出现的最大次数
 *
 * 输入描述
 * 输入只有一行，包含一个长度不超过100的字符串
 *
 * 输出描述
 * 输出只有一行，输出相同字符串连续出现的最大次数
 *
 * // 连续出现，只能用滑动窗口
 * @version: 1.0
 */
public class O0072_相同字符连续出现的最大次数2 {

	public static void main(String[] args) {
		String input = "aaabbc1eeccddddeeeee";
		int result = findMaxConsecutiveCharacters(input);
		System.out.println(result); // 应该输出 5，因为 'e' 字符连续出现了5次
	}

	public static int findMaxConsecutiveCharacters(String s) {
		if (s == null || s.length() == 0) return 0;

		int maxCount = 1; // 至少每个字符自身是连续的
		int count = 1; // 当前连续字符的计数

		for (int i = 1; i < s.length(); i++) {
			if (s.charAt(i) == s.charAt(i - 1)) {
				// 如果当前字符与前一个字符相同，增加计数
				count++;
			} else {
				// 如果当前字符与前一个字符不同，更新最大计数并重置当前计数
				maxCount = Math.max(maxCount, count);
				count = 1;
			}
		}

		// 处理字符串末尾的连续字符
		maxCount = Math.max(maxCount, count);

		return maxCount;
	}
}
